package mp_Blatt2;

/**
 * Wandelt String in ein short array, int array oder ein Intarray in einen String um.
 * Dient zur einfacherern Handhabung der Eingaben/Ausgaben
 * @author Katja Dittrich
 *
 */
public class StringTransformation {
	
	
	/**
	 * String wird ein short Array erstellt
	 * @param input
	 * @return
	 */
	public static short[] binaryTranformation(String input){
		short[] result = new short[input.length()];
		for (int i=0; i< input.length(); i++){
			try{
				if(input.charAt(i)=='1'){
					result[i]=1;
				}
				if(input.charAt(i)=='0') {
					result[i]=0;
				}
			}catch (Exception e){};
		}
		return result;
	}
	/**
	 * Aus deinem String wird ein int Array erstellt
	 * @param eingabe
	 * @return
	 * @throws WrongInputException
	 */
	public static int[] stringTransformation(String eingabe) throws WrongInputException{
		int[] input = new int[eingabe.length()];
		for(int i=0; i< eingabe.length(); i++){
			if ((eingabe.charAt(i)<='9') && (eingabe.charAt(i)>='0')){
			input[i]= eingabe.charAt(i)-48;}
			else { 
			if ((eingabe.charAt(i)>='A') && (eingabe.charAt(i)<='F')){
				input[i]=eingabe.charAt(i)-55;
			} 
			else{
				throw new WrongInputException("Bitte geben Sie eine korrekte Zahlenfolge ein.");
			}
			}
		}
		return input;
	}
	/**
	 * Aus einem int Array wird ein String erstellt
	 * @param ausgabe
	 * @return
	 */
	public static String stringTransformation(int[] ausgabe){
		String s = new String("");
		for(int i=0; i< ausgabe.length; i++){
			if (ausgabe[i]>=0 && ausgabe[i]<=9){
				s+=(char)(ausgabe[i]+48);
			}else {
				if (ausgabe[i]>=10 && ausgabe[i]<=15){
					s+=(char)(ausgabe[i]+55);
				}
			}
		}
		return s;
	}
}
